//
//  P1706.cpp
//  Algorithm
//
//  Created by 刘锦程 on 2023/9/9.
//

#include <stdio.h>
#include<iostream>
#include<cstdio>
using namespace std;
int n,ans;
int book[12];
int output[10];
int rankk[111000][10];
int hang=1;
void dfs(int kn){
    if(kn==n+1){
        ans++;
        for(int i=1;i<kn;i++){
            printf("%5d",output[i]);
           rankk[hang][i]=output[i];
        }
        hang++;
        printf("\n");
        return;
    }
    else{
        for(int i=1;i<=n;i++){
            if(!book[i]){
                book[i]=1;
                output[kn]=i;
                dfs(kn+1);
                book[i]=0;
            }
        }
    }
}
int P1706ans(){
    cin>>n;
    dfs(1);
//    for(int i=1;i<hang;i++){
//        cout<<"{";
//        for(int j=1;j<=6;j++){
//            if(j!=6)
//            cout<<rankk[i][j]<<",";
//            else cout<<rankk[i][j];
//        }
//        cout<<"},";
//    }
    cout<<ans<<endl;
    return 0;
}
